package br.com.velp.sudecap.entidade;

import javax.persistence.*;

/**
 * <sumario>
 * <objetivo> "Rastreabilidade" </objetivo>
 * <autor> EDUARDO SANTOS DE OLIVEIRA </autor>
 * <versao>1.0.0.0</versao>
 * <data_criacao> 17.10.2012 </data_criacao>
 * <data_ultima_alteracao> N/A </data_ultima_alteracao>
 * <requisitos_afetados> RF008.01 - Listar Cartórios / RF008.02 - Cadastrar Cartorio </requisitos_afetados>
 * <descricao> Bean Responsável Pelo Mapeamento da Tabela DIREITO_GRUPO_USUARIO </descricao>
 * </sumario>
 */
@Entity
@Table(name = "Direito_Grupo_Usu")
public class DireitoGrupoUsuario extends EntityBase{
    
    @Id
    @SequenceGenerator(name = "SQ_ID_DEC_GRU_USU", sequenceName = "SQ_ID_DEC_GRU_USU", allocationSize = 1)
    @GeneratedValue(generator = "SQ_ID_DEC_GRU_USU")
    @Column(name = "id_Direito_Grupo", nullable = false, unique = true)
    private Long id;
    
    @ManyToOne(optional = false)
    @JoinColumn(name = "Cod_Direito")    
    private DireitoSistema direitoSistema;
    
    @ManyToOne(optional = false)
    @JoinColumn(name = "Cod_Grupo_Usu")
    private GrupoUsuario grupoUsuario;

    public DireitoGrupoUsuario() {
    }

    public DireitoGrupoUsuario(Long id) {
	this.id = id;
    }

    public Long getId() {
	return id;
    }

    public void setId(Long id) {
	this.id = id;
    }

    public DireitoSistema getDireitoSistema() {
	return direitoSistema;
    }

    public void setDireitoSistema(DireitoSistema direitoSistema) {
	this.direitoSistema = direitoSistema;
    }

    public GrupoUsuario getGrupoUsuario() {
	return grupoUsuario;
    }

    public void setGrupoUsuario(GrupoUsuario grupoUsuario) {
	this.grupoUsuario = grupoUsuario;
    }

    @Override
    public boolean equals(Object obj) {
	return genericEquals(obj);
    }

    @Override
    public int hashCode() {
	int hash = 7;
	hash = 29 * hash + (this.id != null ? this.id.hashCode() : 0);
	return hash;
    }
    
}
